//#include"Processbar.h"
//#include<string.h>
//#include<unistd.h> 
//
////void ForTest()
////{
////  printf("this is for test\n");
////  printf("this is for test\n");
////  printf("this is for test\n");
////  printf("this is for test\n");
////  printf("this is for test\n");
////  printf("this is for test\n");
////}
////version 1
//
//#define Length 101
//
//#define Style '#'
//
//const char *lable = "|/-\\";
//
//
//void ProcBar()
//{
//   char bar[Length];
//   memset(bar,'\0',sizeof(bar));
//   int len = strlen(lable);
//
//
//   int cnt = 0;
//   while(cnt <= 100)
//   {
//     printf("[%-100s][%d%%][%c]\r", bar, cnt,lable[cnt%len]);
//     fflush(stdout);
//     bar[cnt++] = Style; 
//     usleep(20000);
//   }
//   printf("\n");
//}


#include "Processbar.h"
#include <string.h>
#include <unistd.h>

//void ForTest()
//{
//    printf("this is for test\n");
//    printf("this is for test\n");
//    printf("this is for test\n");
//    printf("this is for test\n");
//    printf("this is for test\n");
//    printf("this is for test\n");
//}

#define Length 101
#define Style '='

const char *lable = "|/-\\";

// version 1
//void ProcBar()
//{
//    char bar[Length];
//    memset(bar, '\0', sizeof(bar));
//    int len = strlen(lable);
//
//    int cnt = 0;
//    while(cnt <= 100)
//    {
//        printf("[%-100s][%3d%%][%c]\r", bar, cnt, lable[cnt%len]);
//        fflush(stdout);
//        bar[cnt++] = Style;
//        usleep(20000);
//    }
//
//    printf("\n");
//}

//version 2
void ProcBar(double total, double current)
{
    char bar[Length];
    memset(bar, '\0', sizeof(bar));
    int len = strlen(lable);

    int cnt = 0;
    double rate = (current*100.0)/total;
    int loop_count = (int)rate;
    while(cnt <= loop_count)
    {
        bar[cnt++] = Style;
        //usleep(20000);
    }
    printf("[%-100s][%.1lf%%][%c]\r", bar, rate, lable[cnt%len]);
    fflush(stdout);
}













